01
ART概览
从Dalvik到ART的演进 · ART核心设计目标 · ART与JVM的对比
演进设计对比
02
ART架构总览
ART的层次结构 · 核心组件(Compiler, Runtime, GC) · 启动流程概览
架构组件启动
03
DEX文件格式
DEX文件结构解析 · Class Def与Method ID · DEX优化(ODEX/VDEX)
字节码结构优化
04
OAT文件格式
OAT文件结构 · ELF封装与OAT sections · OAT与DEX的关系
ELF编译链接
05
编译策略
AOT编译 · JIT编译 · 混合编译模式(Speed/Speed-profile/Interpret-only)
AOTJIT混合
06
Profile Guided Compilation
Profile文件生成 · 热点方法识别 · 基于profile的JIT/AOT决策
PGO热点优化
07
JIT编译器
JIT编译流程 · 中间表示(IR) · 寄存器分配与指令选择
IR寄存器编译
08
AOT编译器 (dex2oat)
dex2oat工作流程 · 编译选项与优化级别 · 编译产物管理
dex2oat优化产物
09
解释器
Switch解释器与Computed Goto解释器 · 解释执行流程 · 内建函数优化
解释器内建执行
10
ClassLoader机制
PathClassLoader与DexClassLoader · ClassTable与查找链 · 类的懒加载
类加载双亲委派懒加载
11
类加载与链接
类加载五阶段(加载、验证、准备、解析、初始化) · 链接过程详解
加载链接初始化
12
方法调用与分派
虚方法表(vtable) · 接口方法表(itable) · 方法调用指令(invoke-virtual等)
vtableitable分派
13
内存管理概览
ART堆结构 · Region空间与TLAB · 内存分配流程
堆TLAB分配
14
GC算法
Mark-Sweep · Concurrent Copying (CC) · Generational GC
GC并发分代
15
GC策略与调优
GC触发条件 · 暂停时间优化 · GC日志分析
调优暂停日志
16
对象生命周期
对象创建 · 对象头结构 · 锁状态与偏向锁
对象头锁偏向锁
17
线程管理
Java线程与pthread映射 · 线程池与调度 · 线程状态转换
线程pthread调度
18
同步机制
synchronized实现 · Lock与Condition · CAS与自旋锁
锁CAS同步
19
异常与错误处理
异常抛出与捕获流程 · Stack Trace生成 · OOM处理
异常OOM堆栈
20
JNI与Native Bridge
JNI函数注册 · ArtMethod与native方法 · JNI临界区
JNINative临界区
21
反射机制
反射API实现 · Method与Field的ArtField/ArtMethod · 性能开销分析
反射ArtField性能
22
动态代理与Lambda
动态代理生成机制 · Lambda表达式实现 · Method Handle
代理LambdaMethodHandle
23
热更新与插件化
热更新原理(ClassLoader替换) · 插件化框架与ART兼容性
热更新插件化ClassLoader
24
性能分析工具
Systrace与Perfetto · SimplePerf与FlameGraph · Heap Profiling
性能Perfetto火焰图
25
ART调试与诊断
JDWP协议 · 调试器架构 · WatchDog与ANR分析
调试JDWPANR
26
安全与加固
DEX加固原理 · VMP与Dex2C · ART下的反调试
加固VMP反调试
27
ART与Kotlin
Kotlin协程在ART中的实现 · 内联函数与优化 · 空安全与类型擦除
Kotlin协程内联
28
ART与Compose
Compose Runtime与ART交互 · Slot表与重组 · Compose编译器插件
ComposeSlot重组
29
ART未来演进
R8与D8优化 · ART 14新特性 · MTE与内存安全
R8D8MTE
30
综合实战
从APK到机器码的完整旅程 · ART调优案例 · 常见问题排查指南
实战调优排查